package com.wnzt.baszh.service;

import java.util.List;
import java.util.Map;

import com.wnzt.baszh.entity.SzhCxmbtjmx;
import com.wnzt.baszh.util.common.PageHelper;


/**
 * 病案查询管理service
 */
public interface IMedicalCheckService {
    
    /**
     * 根据医生类型字段加载所有该类型下的医生
     */
    Object loadDoctorByDocType(String code);

    /**
     * 根据条件查询模板id修改模板的名称
     */
    Object editConditionTempName(String name, String mbID);

    /**
     * 添加模板，添加模板条件
     */
    Object addConditionTemp(Map<String, Object> map);

    /**
     * 修改模板条件
     */
    Object editConditionTemp(Map<String, Object> map);

    
    /**
     * 根据条件查询模板id删除该模板信息
     */
    Object deleteConditionTemp(String mbID);
    

    /**
     * 公用代码--加载个人病案查询模板
     * @author hlq
     * @param request
     * @param ftype 模板类型 ： 1 病案查询    2 病案高级查询
     * @return
     * @update [lv tang wei]
     * [2017年6月6日]
     */
    Object loadConditionTemple(String fcode,String ftype);

    /**
     * 根据条件查询模板id加载条件明细值
     */
    Object loadConditionByTemple(String mbID);

    /**
     * 根据字段模板id加载字段信息
     */
    Object loadFieldsByTempId(String mbID);

    /**
     * 病案查询页面点击查询执行事件,返回拼接sql语句后查询出的数据
     */
    List<Map<String, Object>> SubmitConditionCheck(Map<String, Object> map) throws Exception;

    /**
     * 病案查询页面单个病案申请
     */
    Object confirmSApply(Map<String, Object> map);
    
    /**
     * 病案高级查询-可选条件树查询
     * @author [lv tang wei]
     * Describe:
     * @param text 条件
     * @return
     * @throws Exception
     * [2017年6月5日]
     */
    public List<Map<String,Object>> getQuerySelfCondition()throws Exception;
    
    /**
     * 病案高级查询-个人模板-新增
     * @author [lv tang wei]
     * Describe:
     * @param fmbmc 模板名称
     * @param fcode 人员编码
     * @param ftype 模板类型  1病案查询  2病案高级查询
     * @throws Exception
     * [2017年6月6日]
     */
    public void addTemplate(String fmbmc, String fcode ,int ftype)throws Exception;
    
    /**
     * 病案高级查询-模板条件组--根据模板id获取条件组
     * @author [lv tang wei]
     * Describe:
     * @param mbid 模板id
     * @return
     * [2017年6月7日]
     */
    public List<Map<String,Object>> queryConditionGroup(String mbid);
    
    /**
     * 病案高级查询-模板条件组--新增
     * @author [lv tang wei]
     * Describe:
     * @param mbid
     * @param pid
     * @param tjzmc
     * @param px
     * @throws Exception
     * [2017年6月7日]
     */
    public void addConditionGroup(String mbid,String pid,String tjzmc,String px)throws Exception;
    
    /**
     * 病案高级查询-模板条件组--修改
     * @author [lv tang wei]
     * Describe:
     * @param id 主键
     * @param tjzmc 条件组名称
     * @param px 排序
     * @param pid 父级id
     * @param gx 与上一排序的关系
     * @throws Exception
     * [2017年6月7日]
     */
    public void updateConditionGroup(String id,String tjzmc,String px,String pid,String gx)throws Exception;
    
    /**
     * 病案高级查询-模板条件组--删除
     * @author [lv tang wei]
     * Describe:
     * @param id
     * @throws Exception
     * [2017年6月7日]
     */
    public void deleteConditionGroup(String id)throws Exception;
    
    /**
     * 病案高级查询-条件明细--根据条件组id取条件明细
     * @author [lv tang wei]
     * Describe:
     * @param zid 条件组id
     * @return
     * [2017年6月7日]
     */
    public List<SzhCxmbtjmx> queryCondition(String zid);
    
    /**
     * 病案高级查询-条件明细--取条件组下某个条件明细
     * @author [lv tang wei]
     * Describe:
     * @param zid
     * @param fieldcode
     * @return
     * [2017年6月12日]
     */
    public SzhCxmbtjmx getConditionByCode(String zid,String fieldcode);
    
    /**
     * 病案高级查询-条件明细--新增明细
     * @author [lv tang wei]
     * Describe:
     * @param mx
     * @throws Exception
     * [2017年6月12日]
     */
    public void addCondition(SzhCxmbtjmx mx)throws Exception;
    
    /**
     * 病案高级查询-条件明细--修改明细
     * @author [lv tang wei]
     * Describe:
     * @param mx
     * @throws Exception
     * [2017年6月12日]
     */
    public void updateCondition(SzhCxmbtjmx mx)throws Exception;
    
    /**
     * 病案高级查询-条件明细--删除明细
     * @author [lv tang wei]
     * Describe:
     * @param mx
     * @throws Exception
     * [2017年6月12日]
     */
    public void deleteCondition(String id)throws Exception;
    
    /**
     * 病案高级查询-更新模板sql、sqlzh
     * @author [lv tang wei]
     * Describe:
     * @param mbid 模板id
     * @return
     * @throws Exception
     * [2017年6月16日]
     */
   public Map<String,Object> getTemplateByID(String mbid)throws Exception;

    /**
     * 病案查询页面批量申请确认
     */
    Object confirmBApply(Map<String, Object> map);

    /**
     * 病案浏览审批页面查询数据
     */
    PageHelper checkPurposeDataByUser(Map<String, Object> map);

    /**
     * 根据借阅目的id和审批级别 判断下级审批级别是否存在审批人员
     */
    Object checkNextExaminationPerson(Map<String, Object> map);

    /**
     * 病案浏览审批审批通过方法
     */
    Object submitsApprovalMedicol(Map<String, Object> map);

    /**
     * 病案浏览审批审批不通过方法
     */
    Object submitsNotApprovalMedicol(Map<String, Object> map);

    /**
     * 病案批量浏览审批查询
     */
    PageHelper checkPurposeDataBatch(Map<String, Object> map);

    /**
     * 病案批量浏览审批审批通过方法
     */
    Object submitbApprovalMedicol(Map<String, Object> map);

    /**
     * 病案批量浏览审批审批不通过方法
     */
    Object submitbNotApprovalMedicol(Map<String, Object> map);

    /**
     * 根据借阅目的id和下级审批级别判断当前用户是否具有相应的审批权限
     */
    Object checkUserHaveJuris(Map<String, Object> map);
    
    /**
     * 病案高级查询-批量申请查询
     * @author [lv tang wei]
     * Describe:
     * @param map
     * @return
     * @throws Exception
     * [2017年6月28日]
     */
    public Map<String, Object> medicalAdvancedInquiryBatchBrowseApplyQuery(Map<String, Object> map)throws Exception;

    /**
     * 根据用户判断图片分类模板权限
     */
    List<Map<String, Object>> getListOptions(Map<String, Object> maps);

    /**
     * 病案浏览页面单个图片分类模板申请
     */
    Object confirmSApplyImg(Map<String, Object> map);
    
    /**
     * 病案高级查询-过滤设置查询
     * @author [song cheng lin]
     * Describe:
     * @param map
     * @return
     * @throws Exception
     * [2017年7月7日]
     */
    Object loadFieldsByTempFilterId(String mbID);

    /**
     * 获取所有 病案错误报告处理
     */
    PageHelper queryAllErrossb(Map<String, Object> map);  
    
    /**
     *  病案错误报告处理   处理状态修改
     */
    Object submitFstate(Map<String, Object> map);
    
    /**
     * 人员浏览统计 查询
    */
    public PageHelper SumMedicalStatistical(Map<String, Object> map);
    
    /**
     * 人员浏览统计 详情
    */
    public PageHelper MbrowseInfo(Map<String, Object> map);
 
}
